Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2016, 13:25
Новичок на форуме
Отправить личное сообщение для Papadzyan Посмотреть профиль Найти все сообщения от Papadzyan
 
Регистрация: 04.05.2016
Сообщений: 1

как вывести массив в цикле
Есть функция, которая получает массив:
$(function() {
            $("#load").click(function(){ // Выполняем если по кнопке кликнули

                $.ajax({
                    url: "", // Обработчик
                    type: "GET",       // Отправляем методом GET
                    data: {"num": num},
                    cache: false,
                    dataType: 'json',
                    success: function(response){
                        if(response == 0){ // Смотрим ответ от сервера и выполняем соответствующее действие
                            alert('Записей нет!');
                        }else{
                            $("#comments").append(response);
                            num = num + 1;
                        }
                    }
                });
            });
        });


Содержимое массива:
{"1":{"Email":"admin@admin","DateComment":"2016-05-04","TimeComment":"01:41:28","Text":"\u041f\u0440\ u0438\u0432\u0435\u0442, \u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u 0440\u0438\u0439!\u0440\u043f\u043e\u0440\u043f\u0 43e\u043f\u043b\u043f\u043e\u043b\u0434","Mark":"5 "}}

Так вот вопрос: как мне вывести содержимое этого массива в цикле на страницу? И кстати почему текст преобразовался в такую шляпу после
json_encode
?
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2016, 14:21
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Papadzyan,
Во-первых, это не массив, а объект:
var ans = {"1":{"Email":"admin@admin","DateComment":"2016-05-04","TimeComment":"01:41:28","Text":"\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439!\u0440\u043f\u043e\u0440\u043f\u043e\u043f\u043b\u043f\u043e\u043b\u0434","Mark":"5 "}};
alert(JSON.stringify(ans));

Во-вторых, неправильный объект:
"1": - имя свойства объекта (ключ) - должно соответствовать ограничениям на имена переменных ( https://learn.javascript.ru/variables )
Если заменить 1 на First, то с этим объектом можно дальше работать, например:
var ans = {"First":{"Email":"admin@admin","DateComment":"2016-05-04","TimeComment":"01:41:28","Text":"\u041f\u0440\u0438\u0432\u0435\u0442 \u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439! \u0440\u043f\u043e\u0440\u043f\u043e\u043f\u043b\u043f\u043e\u043b\u0434","Mark":"5 "}};
alert(ans.First.Email);
alert(ans.First.Text);

PS: с именем "1" тоже можно работать, но в другой нотации:
var ans = {"1":{"Email":"admin@admin","DateComment":"2016-05-04","TimeComment":"01:41:28","Text":"\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439!\u0440\u043f\u043e\u0440\u043f\u043e\u043f\u043b\u043f\u043e\u043b\u0434","Mark":"5 "}};
alert(ans['1'].Email);

Последний раз редактировалось Dilettante_Pro, 10.05.2016 в 14:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно методом ajax вернуть ассоциативный массив js? Hurray AJAX и COMET 2 09.01.2016 00:19
Подскажите как вывести все свойства объекта? tiho Общие вопросы Javascript 17 15.11.2015 20:50
Вывести HTML-код как текст Dion Элементы интерфейса 2 28.09.2015 22:45
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11
Как удалить массив? SunYang Общие вопросы Javascript 14 05.02.2010 14:31